package org.springcamp.security.facebook;
import java.io.IOException;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.ObjectCodec;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.JsonDeserializer;
public class FacebookUserDeserializer extends JsonDeserializer<FacebookUser> {
@Override
public FacebookUser deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
FacebookUser user = new FacebookUser();
ObjectCodec oc = jp.getCodec();
JsonNode node = oc.readTree(jp);
user.setId(getNodeString(node.get("id")));
user.setName(getNodeString(node.get("username")));
user.setBirthday(getNodeString(node.get("birthday")));
user.setEmail(getNodeString(node.get("email")));
user.setGender(getNodeString(node.get("gender")));
user.setLink(getNodeString(node.get("link")));
user.setLocale(getNodeString(node.get("locale")));
return user;
}
private String getNodeString(JsonNode jsonNode) {
return jsonNode == null ? "" : jsonNode.getTextValue();
}
}